package com.mini.grpc.transport;

import com.mini.grpc.common.Status;

/**
 * ServerStreamListener接口定义了服务端流监听器的功能。
 * 
 * <p>服务端流监听器用于接收来自客户端的请求和事件。
 *
 * @param <ReqT> 请求类型
 */
public interface ServerStreamListener<ReqT> {
    
    /**
     * 当收到消息时调用
     *
     * @param message 收到的消息
     */
    void messageReceived(ReqT message);
    
    /**
     * 当客户端半关闭流时调用，表示客户端不再发送消息
     */
    void halfClosed();
    
    /**
     * 当流被取消时调用
     *
     * @param status 取消状态
     */
    void cancelled(Status status);
} 